package com.autumn.zero.application.services;

import com.autumn.common.api.domain.entities.IEntity;
import com.autumn.domain.repositories.IEntityRepository;

/**
 * 简单实体抽象编辑应用服务
 * 
 * @author 老码农 2018-12-08 23:30:19
 * @param <TPrimaryKey>
 * @param <TEntity>
 * @param <TRepository>
 * @param <TInput>
 * @param <TOutput>
 */
public abstract class AbstractSimpleZeroEditAppService<TPrimaryKey, TEntity extends IEntity<TPrimaryKey>, TRepository extends IEntityRepository<TEntity, TPrimaryKey>, TInput extends IEntity<TPrimaryKey>, TOutput>
		extends
		AbstractZeroEditAppService<TPrimaryKey, TEntity, TRepository, TInput, TInput, TOutput, TEntity, TRepository, TOutput> {

	/**
	 * 	
	 */
	protected AbstractSimpleZeroEditAppService() {
		super("TEntity", "TOutput", "TEntity", "TOutput");
	}

	/**
	 * 
	 * @param entityClass
	 * @param qutputClass
	 */
	protected AbstractSimpleZeroEditAppService(Class<TEntity> entityClass, Class<TOutput> qutputClass) {
		super(entityClass, qutputClass, entityClass, qutputClass);
	}

	/**
	 * 
	 * @param entityClassArgumentsName
	 * @param qutputClassArgumentsName
	 */
	protected AbstractSimpleZeroEditAppService(String entityClassArgumentsName, String qutputClassArgumentsName) {
		super(entityClassArgumentsName, qutputClassArgumentsName, entityClassArgumentsName, qutputClassArgumentsName);
	}

	@Override
	protected final TRepository getQueryRepository() {
		return this.getRepository();
	}
}
